package com.huanf.domain.dto;

import com.huanf.domain.pojo.Article;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import lombok.Data;

import java.util.List;

@Data
@XStreamAlias("xml")
public class WxMessageDto {

    /**
     * 接收方账号（收到的OpenID）
     */
    @XStreamAlias("ToUserName")
    private String toUserName;

    /**
     * 开发者微信号
     */
    @XStreamAlias("FromUserName")
    private String fromUserName;

    /**
     * 消息创建时间 （整型）
     */
    @XStreamAlias("CreateTime")
    private Long createTime;

    /**
     * 回复的消息内容（换行：在content中能够换行，微信客户端就支持换行显示）
     */
    @XStreamAlias("Content")
    private String content;

    /**
     * 消息类型 文本text | 图片image | 语言voice | 视频video | 音乐music | 图文news
     */
    @XStreamAlias("MsgType")
    private String msgType;

    /**
     * 消息id
     */
    @XStreamAlias("MsgId")
    private Long msgId;

    /**
     * 通过素材管理中的接口上传多媒体文件，得到的id
     */
    @XStreamAlias("MediaId")
    private Long mediaId;

    /**
     * 视频消息的标题
     */
    @XStreamAlias("Title")
    private String title;

    /**
     * 视频消息的描述
     */
    @XStreamAlias("Description")
    private String description;

    /**
     * 音乐链接
     */
    @XStreamAlias("MusicURL")
    private String musicURL;

    /**
     * 高质量音乐链接，WIFI环境优先使用该链接播放音乐
     */
    @XStreamAlias("HQMusicUrl")
    private String hQMusicUrl;

    /**
     * 缩略图的媒体id，通过素材管理中的接口上传多媒体文件，得到的id
     */
    @XStreamAlias("ThumbMediaId")
    private String thumbMediaId;

    /**
     * 图文消息个数；当用户发送文本、图片、语音、视频、图文、地理位置这六种消息时，开发者只能回复1条图文消息；其余场景最多可回复8条图文消息
     */
    @XStreamAlias("ArticleCount")
    private Long articleCount;

    /**
     * 图文消息信息，注意，如果图文数超过限制，则将只发限制内的条数
     * <xml> Articles对象里面的数据需要单独抽出一个实体类(例如Article类)进行封装，由于允许有多个item(多个图文消息)，所以用List
     *   <ToUserName><![CDATA[toUser]]></ToUserName>
     *   <FromUserName><![CDATA[fromUser]]></FromUserName>
     *   <CreateTime>12345678</CreateTime>
     *   <MsgType><![CDATA[news]]></MsgType>
     *   <ArticleCount>1</ArticleCount>
     *   <Articles>
     *     <item>
     *       <Title><![CDATA[title1]]></Title>
     *       <Description><![CDATA[description1]]></Description>
     *       <PicUrl><![CDATA[picurl]]></PicUrl>
     *       <Url><![CDATA[url]]></Url>
     *     </item>
     *   </Articles>
     * </xml>
     */
    @XStreamAlias("Articles")
    private List<Article> articles;

    /**
     * 图片链接，支持JPG、PNG格式，较好的效果为大图360*200，小图200*200
     */
    @XStreamAlias("PicUrl")
    private String picUrl;

    /**
     * 点击图文消息跳转链接
     */
    @XStreamAlias("Url")
    private String url;
}
